#pragma once
#include "packet.h"
class authenticate : public packet
{
	public:
		authenticate(void);
		~authenticate(void);

		void init( MemoryPool<authenticate> *p, uint32_t src, uint32_t dst, uint64_t _base, uint64_t _exponent, uint64_t _prime );
		char *serialize();
		void print();

		void destroy() { if( pool ) pool->destroy( this ); }

		static uint32_t PACKET_AUTHENTICATE_SIZE;
	private:
		uint64_t prime;
		uint64_t base;
		uint64_t exponent;
		uint64_t pub_key;
		uint64_t secret;
		MemoryPool<authenticate> *pool;
};

